package org.jeecg.modules.zonglzp.mapper;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.zonglzp.entity.CompanyEntity;
import org.jeecg.modules.zonglzp.entity.Customer;
import org.jeecg.modules.zonglzp.entity.User;
import org.jeecg.modules.zonglzp.entity.store;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Component
public interface CompanyMapper {

    //通过token查询用户iod
    String getUseridbytoken(@Param("token") String token);

    //通过用户id查询公司信息
    CompanyEntity getCompanybyuserId(@Param("userid") String userid);

    //通过公司id查询下面所有门店
    IPage<store> querystoreBycompanyId(Page<store> page, @Param("companyId") String companyId,@Param("orgCode") String orgCode);


    //通过公司id查询下面所有员工
    IPage<User> getyuangonglistBycompanyId(Page<User> page, @Param("companyId") String companyId);

    //新增门店
    int addstore(store store);

    //新增客户
    int addcustomer(Customer customer);

    //新增员工
    int addstaff(User user);

    //通过token查询老的标识
    String getoldidentification(@Param("token") String token);

    //
    int updateidentification(@Param("identification") String identification, @Param("token") String token);

    //编辑门店信息
    int updatestore(store store);

    //编辑员工信息
    int updatestaff(User user);

    //通过token查询我的公司中设置的信息
    User getcompanysetbytoken(String token);

    //通过token修改我的公司中设置的信息
    int updatecompanysetbxytoken(User user);

    //通过门店id删除门店
    int deletestore(@Param("storeid") int storeid);

    //删除u员工
    int deletestaff(@Param("id") int id);

    //判断工号是否存在
    String queryworknamebyworkname(@Param("workNumber") String workNumber);


    //判断工号是否存在
    String queryusername(@Param("userName") String userName);


    //判断店名是否已经存在
    String querystoreName(@Param("storeName") String storeName);

    //判断门店编号是否已经存在
    String querystoreCode(@Param("storeCode") String storeCode);


    //根据门店id查询门店
    store getstorebyid(@Param("storeId") int storeId);


    //根据人员id查询人员
    User getstaffbyid(@Param("id") int id);

    //根据token查询公司id
    int queryCompanyId(@Param("token") String token);

    //通过token查询公司的code
    String queryCompanyCode(@Param("token") String token);

    //通过公司id查询品牌标集合
    List<Map<String, Object>> getppbList(@Param("companyId") int companyId);

    //通过id删除品牌标志
    int deleteppb(@Param("id") int id);


    //通过id修改品牌标
    int updateppb(@Param("id") int id, @Param("ppbname") String ppbname);

    //新增品牌标志
    int addppb(@Param("companyId") String companyId, @Param("ppbname") String ppbname, @Param("date") Date date);

    //通过客户编码获取客户id
    int getidbykehubianhao(@Param("wenzi") String wenzi);

    //通过客户名字查询客户是否已经存在
    String getcustomerbyname(@Param("customerName") String customerName);

    //花名册新增员工
    int hmcaddcustomer(Customer customer);

    //花名册编辑前的详情查询
    Customer gethmccustdetail(@Param("id") int id);

    //花名册员工编辑
    int hmcupdatecustomer(Customer customer);

    //判断手机号是否已经存在
    String queryoldphone(@Param("phone") String phone);

    //通过门店id获取下面所有员工
    List<User> getuserListbyStoreid(@Param("storeid") int storeid);

    //通过userId查询公司是否存在
    String getconpanycunzaibyuserId(@Param("id") int id);

    int updatecustomer(Customer customer);

    //查询该订单下该客户是否已经存在
    String getcustomerbynameundertuanding(@Param("customerName")  String customerName,@Param("orderSn")  String orderSn);

    //判断员工工号是否已经存在
    String getstaffNumber(@Param("companyCode") String companyCode, @Param("staffNumber") String staffNumber);

    //通过门店编码查询门店Id
    int querystoreIdbycode(@Param("storeCode") String storeCode);

    //通过公司编码查询上级权限编码
    String getupquanxian(@Param("companyOrgcode") String companyOrgcode);

    //修改店长权限编码
    void updatedianzhangOrgCode(@Param("userId") int userId,@Param("upquanxian") String upquanxian);

    //通过token查询公司编码
    String getcompanycodebytoken(@Param("token") String token);

    //通过用户id查询公司编码
    String getcompanyCodebyuserId(@Param("id") int id);

    //通过用户id去公司表查询公司名称
    String getcompanyNamebyuserId(@Param("id") int id);

    //通过门店id查询所有地址
    IPage<store> getaddressbystoreId(@Param("page") Page<store> page,@Param("storeId")  String storeId);

    //添加门店地址
    int addstoreaddress(store store);

    //删除门店地址
    int deletestoreaddress(@Param("id") int id);

    //编辑门店地址
    int updatestoreaddress(store store);

    String getoldppb(@Param("ppbname") String ppbname,@Param("companyId") String companyId);

    int getoldppbid(@Param("ppbname") String ppbname,@Param("companyId") String companyId);

    //查询门店名字是否已经存在
    String getoldStorenamecunzai(@Param("storeName") String storeName);
}
